#ifndef __uart0_serial_h_
#define __uart0_serial_h_

#pragma GCC diagnostic ignored "-Warray-bounds"

#define UART0_BASE 0x1fe001e0ULL    // qemu 的 UART 寄存器在这个位置 // (0x1fe001e0UL | DMWIN_MASK)
#define UART0_DAT (UART0_BASE + 0)  // 数据寄存器 (DAT)
#define UART0_LSR (UART0_BASE + 5)  // 线路状态寄存器 (LSR)
#define LSR_TX_IDLE (1 << 5)        // 传输 FIFO 位空表示位

static char io_readb(unsigned long addr) {
    return *(volatile char*)addr;
}

static void io_writeb(unsigned long addr, char c) {
    *(char*)addr = c;
}

#endif
